﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1: Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void 选择文件1_Click(object sender, EventArgs e)
        {
            // 显示文件选择对话框，当用户点击“确定”时
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                // 将选择的文件路径显示在 textBox1 控件中
                textBox1.Text = openFileDialog1.FileName;
            }
        }

        private void 选择文件2_Click(object sender, EventArgs e)
        {
            if (openFileDialog2.ShowDialog() == DialogResult.OK)
            {
                textBox2.Text = openFileDialog2.FileName;
            }
        }

        private void 合并文件_Click(object sender, EventArgs e)
        {
            // 获取 textBox1 中显示的第一个文件的路径
            string file1Path = textBox1.Text;
            // 获取 textBox2 中显示的第二个文件的路径
            string file2Path = textBox2.Text;

            // 检查是否两个文件都已选择
            if (string.IsNullOrEmpty(file1Path) || string.IsNullOrEmpty(file2Path))
            {
                MessageBox.Show("请选择两个要合并的文件！");
                return;
            }

            // 获取可执行程序所在目录下的 Data 子目录路径
            string dataDir = Path.Combine(Application.StartupPath, "Data");
            // 如果 Data 子目录不存在，则创建它
            if (!Directory.Exists(dataDir))
            {
                Directory.CreateDirectory(dataDir);
            }

            // 构建新合并文件的路径，命名为 mergedFile.txt 并放在 Data 子目录下
            string newFilePath = Path.Combine(dataDir, "mergedFile.txt");

            try
            {
                // 使用 StreamWriter 创建并打开新文件，准备写入数据
                using (StreamWriter writer = new StreamWriter(newFilePath))
                {
                    // 使用 StreamReader 读取第一个文件的全部内容
                    using (StreamReader reader1 = new StreamReader(file1Path))
                    {
                        string content1 = reader1.ReadToEnd();
                        // 将第一个文件的内容写入新文件
                        writer.Write(content1);
                    }

                    // 同样地，读取第二个文件的全部内容
                    using (StreamReader reader2 = new StreamReader(file2Path))
                    {
                        string content2 = reader2.ReadToEnd();
                        // 将第二个文件的内容追加到新文件后面
                        writer.Write(content2);
                    }
                }
                MessageBox.Show("文件合并成功！");
            }
            catch (Exception ex)
            {
                MessageBox.Show($"文件合并失败，原因：{ex.Message}");
            }
        }
    }
}
